var Fiber = require('fibers');
var fs = require("fs");
var mon_db = require("./mongodb.index.js");
var mon_proxy_db = require("./mongo_proxy.index.js");
var db_core //数据库内核

var db_type = {
	val: "",
	get: function() {
		if (fs.existsSync(__dirname + "/.db/.db_type")) {
			return db_type.val || (db_type.val = fs.readFileSync(__dirname + "/.db/.db_type").toString().trim());
		} else {
			return "";
		}
	},
	set: function(content) {
		fs.writeFileSync(__dirname + "/.db/.db_type", db_type.val = content);
	}
};
//检查数据库支持
console.log("DB TYPE:", db_type.get());
if (db_type.get().indexOf("mongo_proxy")!==-1) {
	console.log("使用Mongo_proxy");
	db_core = mon_proxy_db;
} else if (db_type.get().indexOf("file.v2")!==-1) {
	console.log("使用新版文件数据库");
	db_core = require("./file.v2.index.js");
} else { // "file"
	//折衷使用文件数据库
	console.log("使用文件数据库");
	db_core = require("./file.index.js");
}
db_core.refreshIndex();
var exportsDbCore = {};
exportsDbCore.__proto__ = db_core;
exportsDbCore.changeCore = function(type) {
	if (type == "file") {
		db_type.set("file");
		exportsDbCore.__proto__ = require("./file.index.js");
	} else /* if (type == "mongo_proxy")*/ {
		db_type.set("mongo_proxy");
		exportsDbCore.__proto__ = mon_proxy_db;
	}
	/* else {
			db_type.set("mongodb");
			exportsDbCore.__proto__ = mon_db;
		}*/
	db.refreshIndex();
}

module.exports = exportsDbCore;